home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / kcl.lha / cmpnew / cmptype.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  13KB  |  646 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "cmptype.h"
  5. init_cmptype(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     MF(VV[46],L1,start,size,data);
  9.     MF(VV[47],L2,start,size,data);
  10.     MF(VV[48],L3,start,size,data);
  11.     MF(VV[49],L4,start,size,data);
  12.     MF(VV[50],L5,start,size,data);
  13.     MF(VV[51],L6,start,size,data);
  14.     MF(VV[52],L7,start,size,data);
  15.     MF(VV[53],L8,start,size,data);
  16.     vs_top=vs_base=base;
  17. }
  18. /*    function definition for OBJECT-TYPE    */
  19.  
  20. static L1()
  21. {    register object *base=vs_base;
  22.     register object *sup=base+VM3;
  23.     vs_reserve(VM3);
  24.     check_arg(1);
  25.     vs_top=sup;
  26. TTL:;
  27.     base[2]= base[0];
  28.     vs_top=(vs_base=base+2)+1;
  29.     Ltype_of();
  30.     vs_top=sup;
  31.     base[1]= vs_base[0];
  32.     {object V1= base[1];
  33.     if((V1!= VV[9])
  34.     && (V1!= VV[10])
  35.     && (V1!= VV[4]))goto T3;
  36.     vs_top=(vs_base=base+1)+1;
  37.     return;
  38. T3:;
  39.     if((V1!= VV[7])
  40.     && (V1!= VV[54])
  41.     && (V1!= VV[0]))goto T4;
  42.     base[2]= VV[0];
  43.     vs_top=(vs_base=base+2)+1;
  44.     return;
  45. T4:;
  46.     if((V1!= VV[5])
  47.     && (V1!= VV[6]))goto T5;
  48.     vs_top=(vs_base=base+1)+1;
  49.     return;
  50. T5:;
  51.     if((V1!= VV[1]))goto T6;
  52.     base[3]= base[0];
  53.     vs_top=(vs_base=base+3)+1;
  54.     Larray_element_type();
  55.     vs_top=sup;
  56.     base[2]= vs_base[0];
  57.     base[3]= list(2,VV[1],base[2]);
  58.     vs_top=(vs_base=base+3)+1;
  59.     return;
  60. T6:;
  61.     if((V1!= VV[2]))goto T9;
  62.     base[3]= base[0];
  63.     vs_top=(vs_base=base+3)+1;
  64.     Larray_element_type();
  65.     vs_top=sup;
  66.     base[2]= vs_base[0];
  67.     base[3]= list(2,VV[2],base[2]);
  68.     vs_top=(vs_base=base+3)+1;
  69.     return;
  70. T9:;
  71.     base[2]= VV[3];
  72.     vs_top=(vs_base=base+2)+1;
  73.     return;}
  74. }
  75. /*    function definition for TYPE-FILTER    */
  76.  
  77. static L2()
  78. {    register object *base=vs_base;
  79.     register object *sup=base+VM4;
  80.     vs_reserve(VM4);
  81.     check_arg(1);
  82.     vs_top=sup;
  83. TTL:;
  84.     {object V2= base[0];
  85.     if((V2!= VV[9])
  86.     && (V2!= VV[0])
  87.     && (V2!= VV[10])
  88.     && (V2!= VV[4]))goto T12;
  89.     vs_top=(vs_base=base+0)+1;
  90.     return;
  91. T12:;
  92.     if((V2!= VV[55]))goto T13;
  93.     base[1]= VV[4];
  94.     vs_top=(vs_base=base+1)+1;
  95.     return;
  96. T13:;
  97.     if((V2!= VV[56]))goto T14;
  98.     base[1]= VV[4];
  99.     vs_top=(vs_base=base+1)+1;
  100.     return;
  101. T14:;
  102.     if((V2!= VV[57])
  103.     && (V2!= VV[5]))goto T15;
  104.     base[1]= VV[5];
  105.     vs_top=(vs_base=base+1)+1;
  106.     return;
  107. T15:;
  108.     if((V2!= VV[58])
  109.     && (V2!= VV[6]))goto T16;
  110.     base[1]= VV[6];
  111.     vs_top=(vs_base=base+1)+1;
  112.     return;
  113. T16:;
  114.     base[3]= base[0];
  115.     base[1]= simple_symlispcall_no_event(VV[59],base+3,1);
  116.     base[2]= Cnil;
  117.     {object V3= car(base[1]);
  118.     if((V3!= VV[60])
  119.     && (V3!= VV[2]))goto T19;
  120.     if(endp(cdr(base[1]))){
  121.     goto T20;}
  122.     {object V4= cadr(base[1]);
  123.     if((V4!= VV[11]))goto T26;
  124.     base[2]= Cnil;
  125.     goto T25;
  126. T26:;
  127.     if((V4!= VV[7])
  128.     && (V4!= VV[54])
  129.     && (V4!= VV[0]))goto T27;
  130.     base[2]= VV[7];
  131.     goto T25;
  132. T27:;
  133.     if((V4!= VV[8]))goto T28;
  134.     base[2]= VV[8];
  135.     goto T25;
  136. T28:;
  137.     if((V4!= VV[9]))goto T29;
  138.     base[2]= VV[9];
  139.     goto T25;
  140. T29:;
  141.     if((V4!= VV[10]))goto T30;
  142.     base[2]= VV[10];
  143.     goto T25;
  144. T30:;
  145.     if((V4!= VV[4])
  146.     && (V4!= VV[56])
  147.     && (V4!= VV[55]))goto T31;
  148.     base[2]= VV[4];
  149.     goto T25;
  150. T31:;
  151.     base[2]= Ct;}
  152. T25:;
  153.     if((base[2])!=Cnil){
  154.     goto T21;}
  155. T20:;
  156.     base[3]= Ct;
  157.     vs_top=(vs_base=base+3)+1;
  158.     return;
  159. T21:;
  160.     if(endp(cddr(base[1]))){
  161.     goto T33;}
  162.     if(caddr(base[1])==VV[11]){
  163.     goto T33;}
  164.     if(!((length(caddr(base[1])))==(1))){
  165.     goto T33;}
  166.     {object V5= base[2];
  167.     if((V5!= VV[7]))goto T39;
  168.     base[3]= VV[5];
  169.     vs_top=(vs_base=base+3)+1;
  170.     return;
  171. T39:;
  172.     if((V5!= VV[8]))goto T40;
  173.     base[3]= VV[6];
  174.     vs_top=(vs_base=base+3)+1;
  175.     return;
  176. T40:;
  177.     base[3]= list(2,VV[1],base[2]);
  178.     vs_top=(vs_base=base+3)+1;
  179.     return;}
  180. T33:;
  181.     base[3]= list(2,VV[2],base[2]);
  182.     vs_top=(vs_base=base+3)+1;
  183.     return;
  184. T19:;
  185.     if((V3!= VV[61]))goto T41;
  186.     base[3]= cdr(base[1]);
  187.     base[4]= list(2,VV[13],VV[14]);
  188.     if((simple_symlispcall_no_event(VV[62],base+3,2))==Cnil){
  189.     goto T43;}
  190.     base[3]= VV[9];
  191.     vs_top=(vs_base=base+3)+1;
  192.     return;
  193. T43:;
  194.     base[3]= Ct;
  195.     vs_top=(vs_base=base+3)+1;
  196.     return;
  197. T41:;
  198.     if((V3!= VV[10]))goto T47;
  199.     base[3]= VV[10];
  200.     vs_top=(vs_base=base+3)+1;
  201.     return;
  202. T47:;
  203.     if((V3!= VV[4])
  204.     && (V3!= VV[56])
  205.     && (V3!= VV[55]))goto T48;
  206.     base[3]= VV[4];
  207.     vs_top=(vs_base=base+3)+1;
  208.     return;
  209. T48:;
  210.     base[3]= base[1];
  211.     base[4]= VV[9];
  212.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  213.     goto T50;}
  214.     base[3]= VV[9];
  215.     vs_top=(vs_base=base+3)+1;
  216.     return;
  217. T50:;
  218.     base[3]= base[1];
  219.     base[4]= VV[0];
  220.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  221.     goto T55;}
  222.     base[3]= VV[0];
  223.     vs_top=(vs_base=base+3)+1;
  224.     return;
  225. T55:;
  226.     base[3]= base[1];
  227.     base[4]= VV[10];
  228.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  229.     goto T60;}
  230.     base[3]= VV[10];
  231.     vs_top=(vs_base=base+3)+1;
  232.     return;
  233. T60:;
  234.     base[3]= base[1];
  235.     base[4]= VV[4];
  236.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  237.     goto T65;}
  238.     base[3]= VV[4];
  239.     vs_top=(vs_base=base+3)+1;
  240.     return;
  241. T65:;
  242.     base[3]= base[1];
  243.     base[4]= VV[15];
  244.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  245.     goto T70;}
  246.     base[3]= VV[16];
  247.     vs_top=(vs_base=base+3)+1;
  248.     return;
  249. T70:;
  250.     base[3]= base[1];
  251.     base[4]= VV[5];
  252.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  253.     goto T75;}
  254.     base[3]= VV[5];
  255.     vs_top=(vs_base=base+3)+1;
  256.     return;
  257. T75:;
  258.     base[3]= base[1];
  259.     base[4]= VV[6];
  260.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  261.     goto T80;}
  262.     base[3]= VV[6];
  263.     vs_top=(vs_base=base+3)+1;
  264.     return;
  265. T80:;
  266.     base[3]= base[1];
  267.     base[4]= VV[17];
  268.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  269.     goto T85;}
  270.     base[3]= VV[18];
  271.     vs_top=(vs_base=base+3)+1;
  272.     return;
  273. T85:;
  274.     base[3]= base[1];
  275.     base[4]= VV[19];
  276.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  277.     goto T90;}
  278.     base[3]= VV[20];
  279.     vs_top=(vs_base=base+3)+1;
  280.     return;
  281. T90:;
  282.     base[3]= base[1];
  283.     base[4]= VV[21];
  284.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  285.     goto T95;}
  286.     base[3]= VV[22];
  287.     vs_top=(vs_base=base+3)+1;
  288.     return;
  289. T95:;
  290.     base[3]= base[1];
  291.     base[4]= VV[23];
  292.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  293.     goto T100;}
  294.     base[3]= VV[24];
  295.     vs_top=(vs_base=base+3)+1;
  296.     return;
  297. T100:;
  298.     base[3]= base[1];
  299.     base[4]= VV[25];
  300.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  301.     goto T105;}
  302.     base[3]= VV[26];
  303.     vs_top=(vs_base=base+3)+1;
  304.     return;
  305. T105:;
  306.     base[3]= base[1];
  307.     base[4]= VV[27];
  308.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  309.     goto T110;}
  310.     base[3]= VV[28];
  311.     vs_top=(vs_base=base+3)+1;
  312.     return;
  313. T110:;
  314.     base[3]= base[1];
  315.     base[4]= VV[29];
  316.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  317.     goto T115;}
  318.     base[3]= VV[30];
  319.     vs_top=(vs_base=base+3)+1;
  320.     return;
  321. T115:;
  322.     base[3]= base[1];
  323.     base[4]= VV[31];
  324.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  325.     goto T120;}
  326.     base[3]= VV[32];
  327.     vs_top=(vs_base=base+3)+1;
  328.     return;
  329. T120:;
  330.     base[3]= base[1];
  331.     base[4]= VV[33];
  332.     if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
  333.     goto T125;}
  334.     base[3]= VV[34];
  335.     vs_top=(vs_base=base+3)+1;
  336.     return;
  337. T125:;
  338.     base[3]= Ct;
  339.     vs_top=(vs_base=base+3)+1;
  340.     return;}}
  341. }
  342. /*    function definition for TYPE-AND    */
  343.  
  344. static L3()
  345. {    register object *base=vs_base;
  346.     register object *sup=base+VM5;
  347.     vs_reserve(VM5);
  348.     check_arg(2);
  349.     vs_top=sup;
  350. TTL:;
  351.     if(!(equal(base[0],base[1]))){
  352.     goto T130;}
  353.     vs_top=(vs_base=base+0)+1;
  354.     return;
  355. T130:;
  356.     if(!(base[0]==Ct)){
  357.     goto T133;}
  358.     vs_top=(vs_base=base+1)+1;
  359.     return;
  360. T133:;
  361.     if(!(base[1]==Ct)){
  362.     goto T136;}
  363.     vs_top=(vs_base=base+0)+1;
  364.     return;
  365. T136:;
  366.     if(!(type_of(base[0])==t_cons)){
  367.     goto T139;}
  368.     {object V6= car(base[0]);
  369.     if((V6!= VV[2]))goto T141;
  370.     {object V7= cadr(base[0]);
  371.     if((V7!= VV[7]))goto T142;
  372.     if(!(base[1]==VV[5])){
  373.     goto T144;}
  374.     vs_top=(vs_base=base+1)+1;
  375.     return;
  376. T144:;
  377.     base[2]= Cnil;
  378.     vs_top=(vs_base=base+2)+1;
  379.     return;
  380. T142:;
  381.     if((V7!= VV[8]))goto T146;
  382.     if(!(base[1]==VV[6])){
  383.     goto T148;}
  384.     vs_top=(vs_base=base+1)+1;
  385.     return;
  386. T148:;
  387.     base[2]= Cnil;
  388.     vs_top=(vs_base=base+2)+1;
  389.     return;
  390. T146:;
  391.     if(!(type_of(base[1])==t_cons)){
  392.     goto T151;}
  393.     if(!(car(base[1])==VV[1])){
  394.     goto T151;}
  395.     if(!(cadr(base[0])==cadr(base[1]))){
  396.     goto T151;}
  397.     vs_top=(vs_base=base+1)+1;
  398.     return;
  399. T151:;
  400.     base[2]= Cnil;
  401.     vs_top=(vs_base=base+2)+1;
  402.     return;}
  403. T141:;
  404.     if((V6!= VV[1]))goto T157;
  405.     if(!(type_of(base[1])==t_cons)){
  406.     goto T159;}
  407.     if(!(car(base[1])==VV[2])){
  408.     goto T159;}
  409.     if(!(cadr(base[0])==cadr(base[1]))){
  410.     goto T159;}
  411.     vs_top=(vs_base=base+0)+1;
  412.     return;
  413. T159:;
  414.     base[2]= Cnil;
  415.     vs_top=(vs_base=base+2)+1;
  416.     return;
  417. T157:;
  418.     base[2]= Cnil;
  419.     vs_top=(vs_base=base+2)+1;
  420.     return;}
  421. T139:;
  422.     {object V8= base[0];
  423.     if((V8!= VV[5]))goto T165;
  424.     if(!(type_of(base[1])==t_cons)){
  425.     goto T167;}
  426.     if(!(car(base[1])==VV[2])){
  427.     goto T167;}
  428.     if(!(cadr(base[1])==VV[7])){
  429.     goto T167;}
  430.     vs_top=(vs_base=base+0)+1;
  431.     return;
  432. T167:;
  433.     base[2]= Cnil;
  434.     vs_top=(vs_base=base+2)+1;
  435.     return;
  436. T165:;
  437.     if((V8!= VV[6]))goto T173;
  438.     if(!(type_of(base[1])==t_cons)){
  439.     goto T175;}
  440.     if(!(car(base[1])==VV[2])){
  441.     goto T175;}
  442.     if(!(cadr(base[1])==VV[8])){
  443.     goto T175;}
  444.     vs_top=(vs_base=base+0)+1;
  445.     return;
  446. T175:;
  447.     base[2]= Cnil;
  448.     vs_top=(vs_base=base+2)+1;
  449.     return;
  450. T173:;
  451.     if((V8!= VV[38]))goto T181;
  452.     {object x= base[1],V9= VV[35];
  453.     while(!endp(V9))
  454.     if(eql(x,V9->c.c_car)){
  455.     goto T184;
  456.     }else V9=V9->c.c_cdr;
  457.     goto T183;}
  458. T184:;
  459.     vs_top=(vs_base=base+1)+1;
  460.     return;
  461. T183:;
  462.     base[2]= Cnil;
  463.     vs_top=(vs_base=base+2)+1;
  464.     return;
  465. T181:;
  466.     if((V8!= VV[64]))goto T185;
  467.     {object x= base[1],V10= VV[36];
  468.     while(!endp(V10))
  469.     if(eql(x,V10->c.c_car)){
  470.     goto T188;
  471.     }else V10=V10->c.c_cdr;
  472.     goto T187;}
  473. T188:;
  474.     vs_top=(vs_base=base+1)+1;
  475.     return;
  476. T187:;
  477.     base[2]= Cnil;
  478.     vs_top=(vs_base=base+2)+1;
  479.     return;
  480. T185:;
  481.     if((V8!= VV[4])
  482.     && (V8!= VV[10]))goto T189;
  483.     {object x= base[1],V11= VV[37];
  484.     while(!endp(V11))
  485.     if(eql(x,V11->c.c_car)){
  486.     goto T192;
  487.     }else V11=V11->c.c_cdr;
  488.     goto T191;}
  489. T192:;
  490.     vs_top=(vs_base=base+0)+1;
  491.     return;
  492. T191:;
  493.     base[2]= Cnil;
  494.     vs_top=(vs_base=base+2)+1;
  495.     return;
  496. T189:;
  497.     if((V8!= VV[9]))goto T193;
  498.     if(!(base[1]==VV[38])){
  499.     goto T195;}
  500.     base[2]= VV[9];
  501.     vs_top=(vs_base=base+2)+1;
  502.     return;
  503. T195:;
  504.     base[2]= Cnil;
  505.     vs_top=(vs_base=base+2)+1;
  506.     return;
  507. T193:;
  508.     base[2]= Cnil;
  509.     vs_top=(vs_base=base+2)+1;
  510.     return;}
  511. }
  512. /*    function definition for TYPE>=    */
  513.  
  514. static L4()
  515. {    register object *base=vs_base;
  516.     register object *sup=base+VM6;
  517.     vs_reserve(VM6);
  518.     check_arg(2);
  519.     vs_top=sup;
  520. TTL:;
  521.     base[3]= base[0];
  522.     base[4]= base[1];
  523.     vs_top=(vs_base=base+3)+2;
  524.     L3();
  525.     vs_top=sup;
  526.     base[2]= vs_base[0];
  527.     base[3]= (equal(base[2],base[1])?Ct:Cnil);
  528.     vs_top=(vs_base=base+3)+1;
  529.     return;
  530. }
  531. /*    function definition for RESET-INFO-TYPE    */
  532.  
  533. static L5()
  534. {    register object *base=vs_base;
  535.     register object *sup=base+VM7;
  536.     vs_reserve(VM7);
  537.     check_arg(1);
  538.     vs_top=sup;
  539. TTL:;
  540.     if((structure_ref(base[0],VV[39],2))==Cnil){
  541.     goto T201;}
  542.     base[2]= base[0];
  543.     base[1]= simple_symlispcall_no_event(VV[65],base+2,1);
  544.     structure_set(base[1],VV[39],2,Ct);
  545.     vs_top=(vs_base=base+1)+1;
  546.     return;
  547. T201:;
  548.     vs_top=(vs_base=base+0)+1;
  549.     return;
  550. }
  551. /*    function definition for AND-FORM-TYPE    */
  552.  
  553. static L6()
  554. {    register object *base=vs_base;
  555.     register object *sup=base+VM8;
  556.     vs_reserve(VM8);
  557.     check_arg(3);
  558.     vs_top=sup;
  559. TTL:;
  560.     base[3]= Cnil;
  561.     base[4]= base[0];
  562.     base[5]= structure_ref(cadr(base[1]),VV[39],2);
  563.     vs_top=(vs_base=base+4)+2;
  564.     L3();
  565.     vs_top=sup;
  566.     base[3]= vs_base[0];
  567.     if((base[3])!=Cnil){
  568.     goto T210;}
  569.     base[4]= VV[40];
  570.     base[5]= base[2];
  571.     base[6]= base[0];
  572.     (void)simple_symlispcall_no_event(VV[66],base+4,3);
  573. T210:;
  574.     if(!(base[3]==structure_ref(cadr(base[1]),VV[39],2))){
  575.     goto T217;}
  576.     vs_top=(vs_base=base+1)+1;
  577.     return;
  578. T217:;
  579.     base[5]= cadr(base[1]);
  580.     base[4]= simple_symlispcall_no_event(VV[65],base+5,1);
  581.     structure_set(base[4],VV[39],2,base[3]);
  582.     base[5]= listA(3,car(base[1]),base[4],cddr(base[1]));
  583.     vs_top=(vs_base=base+5)+1;
  584.     return;
  585. }
  586. /*    function definition for CHECK-FORM-TYPE    */
  587.  
  588. static L7()
  589. {    register object *base=vs_base;
  590.     register object *sup=base+VM9;
  591.     vs_reserve(VM9);
  592.     check_arg(3);
  593.     vs_top=sup;
  594. TTL:;
  595.     base[3]= base[0];
  596.     base[4]= structure_ref(cadr(base[1]),VV[39],2);
  597.     vs_top=(vs_base=base+3)+2;
  598.     L3();
  599.     vs_top=sup;
  600.     if((vs_base[0])!=Cnil){
  601.     goto T223;}
  602.     base[3]= VV[41];
  603.     base[4]= base[2];
  604.     base[5]= base[0];
  605.     symlispcall_no_event(VV[66],base+3,3);
  606.     return;
  607. T223:;
  608.     base[3]= Cnil;
  609.     vs_top=(vs_base=base+3)+1;
  610.     return;
  611. }
  612. /*    function definition for DEFAULT-INIT    */
  613.  
  614. static L8()
  615. {    register object *base=vs_base;
  616.     register object *sup=base+VM10;
  617.     vs_reserve(VM10);
  618.     check_arg(1);
  619.     vs_top=sup;
  620. TTL:;
  621.     {object V12= base[0];
  622.     if((V12!= VV[9]))goto T231;
  623.     base[1]= VV[42];
  624.     (void)simple_symlispcall_no_event(VV[66],base+1,1);
  625.     goto T230;
  626. T231:;
  627.     if((V12!= VV[0]))goto T233;
  628.     base[1]= VV[43];
  629.     (void)simple_symlispcall_no_event(VV[66],base+1,1);
  630.     goto T230;
  631. T233:;
  632.     if((V12!= VV[4]))goto T235;
  633.     base[1]= VV[44];
  634.     (void)simple_symlispcall_no_event(VV[66],base+1,1);
  635.     goto T230;
  636. T235:;
  637.     if((V12!= VV[10]))goto T237;
  638.     base[1]= VV[45];
  639.     (void)simple_symlispcall_no_event(VV[66],base+1,1);
  640.     goto T230;
  641. T237:;}
  642. T230:;
  643.     symlispcall_no_event(VV[67],base+1,0);
  644.     return;
  645. }
  646.